#ifndef EXPORTER_H
#define EXPORTER_H

#include <QObject>
#include <QDebug>
#include <QList>
#include <QPointer>
#include <QFile>
#include <QFileInfo>
#include <QTextStream>
#include <QString>

#include "contig.h"


//Why QObject and not QThread?
//  http://mayaposch.wordpress.com/2011/11/01/how-to-really-truly-use-qthreads-the-full-explanation/
class Exporter : public QObject
{
    Q_OBJECT
public:
    explicit Exporter(QString fastaFileName, QString exportFileName, QList< QPointer<Contig> >* contigs, QObject *parent = 0);
    ~Exporter();

signals:
    void trackProgress(int stepsComplete);
    void finished();
    void error( QString err );
    
public slots:
    void process();

private:
    QString fastaFileName;
    QString exportFileName;
    QStringList genesToExport;
    
};

#endif // EXPORTER_H
